/*
    1. 定义枚举类，枚举出日志等级
    2. 提供转换接口，将枚举转换为对应字符串
*/
#pragma once

namespace lcllog
{
    class LogLevel
    {
    public:
        enum class value
        {
            UNKNOW = 0,
            DEBUG,  // 调试
            INFO,   // 提示
            WARN,   // 警告
            ERROR,  // 错误
            FATAL,  // 致命错误
            OFF
        };
        static const char *tostring(LogLevel::value level)
        {
            switch (level)
            {
            case LogLevel::value::DEBUG: return "DEBUG";
            case LogLevel::value::INFO:  return "INFO";
            case LogLevel::value::WARN:  return "WARN";
            case LogLevel::value::ERROR: return "ERROR";
            case LogLevel::value::FATAL: return "FATAL";
            case LogLevel::value::OFF:   return "OFF";
            default: return "UNKNOW";
            }
        }
    };
}